package Cordiali_Es2;

import Cordiali_Es2.Server.QueueType;

public class ExecutionOptions {
	/*
	 * public ECommerceShop(double lambda, double mu1, double mu2, double p1, double p2,
			QueueType qType1, QueueType qType2, int a, int b, boolean isValidating, int capacity) {
		this.lambda = lambda;
		this.mu1 = mu1;
		this.mu2 = mu2;
		this.p1 = p1;
		this.p2 = p2;
		this.qType1 = qType1;
		this.qType2 = qType2;
		this.a=a;
		this.b=b;
		this.isValidating = isValidating;
		ECommerceShop.capacity = capacity;
	}
	 */
	
	private double lambda;
	private double mu1;
	private double mu2;
	private double p1;
	private double p2;
	private QueueType qType1;
	private QueueType qType2;
	private int a;
	private int b;
	private boolean isValidating;
	private int capacity;
	
	public ExecutionOptions() {
		super();
	}
	
	public ExecutionOptions(double lambda, double mu1, double mu2) {
		super();
		this.lambda = lambda;
		this.mu1 = mu1;
		this.mu2 = mu2;
		this.p1 = 1.0f/3;
		this.p2 = 1.0f/3;
		this.a = 1;
		this.b = 1;
		this.isValidating = false;
		this.capacity = -1;
	}
	
	public ExecutionOptions(double lambda, double mu1, double mu2, int a, int b) {
		super();
		this.lambda = lambda;
		this.mu1 = mu1;
		this.mu2 = mu2;
		this.p1 = 1.0f/3;
		this.p2 = 1.0f/3;
		this.a = a;
		this.b = b;
		this.isValidating = false;
		this.capacity = -1;
	}
	
	public ExecutionOptions(double lambda, double mu1, double mu2, double p1,
			double p2, int a, int b) {
		super();
		this.lambda = lambda;
		this.mu1 = mu1;
		this.mu2 = mu2;
		this.p1 = p1;
		this.p2 = p2;
		this.a = a;
		this.b = b;
		this.isValidating = false;
		this.capacity = -1;
	}
	
	public ExecutionOptions(double lambda, double mu1, double mu2, double p1,
			double p2, QueueType qType1, QueueType qType2, int a, int b,
			boolean isValidating) {
		super();
		this.lambda = lambda;
		this.mu1 = mu1;
		this.mu2 = mu2;
		this.p1 = p1;
		this.p2 = p2;
		this.qType1 = qType1;
		this.qType2 = qType2;
		this.a = a;
		this.b = b;
		this.isValidating = isValidating;
		this.capacity = -1;
	}
	
	public ExecutionOptions(double lambda, double mu1, double mu2, double p1,
			double p2, QueueType qType1, QueueType qType2, int a, int b,
			boolean isValidating, int capacity) {
		super();
		this.lambda = lambda;
		this.mu1 = mu1;
		this.mu2 = mu2;
		this.p1 = p1;
		this.p2 = p2;
		this.qType1 = qType1;
		this.qType2 = qType2;
		this.a = a;
		this.b = b;
		this.isValidating = isValidating;
		this.capacity = capacity;
	}
	
	
	public double getLambda() {
		return lambda;
	}
	public void setLambda(double lambda) {
		this.lambda = lambda;
	}
	public double getMu1() {
		return mu1;
	}
	public void setMu1(double mu1) {
		this.mu1 = mu1;
	}
	public double getMu2() {
		return mu2;
	}
	public void setMu2(double mu2) {
		this.mu2 = mu2;
	}
	public double getP1() {
		return p1;
	}
	public void setP1(double p1) {
		this.p1 = p1;
	}
	public double getP2() {
		return p2;
	}
	public void setP2(double p2) {
		this.p2 = p2;
	}
	public QueueType getqType1() {
		return qType1;
	}
	public void setqType1(QueueType qType1) {
		this.qType1 = qType1;
	}
	public QueueType getqType2() {
		return qType2;
	}
	public void setqType2(QueueType qType2) {
		this.qType2 = qType2;
	}
	public int getA() {
		return a;
	}
	public void setA(int a) {
		this.a = a;
	}
	public int getB() {
		return b;
	}
	public void setB(int b) {
		this.b = b;
	}
	public boolean isValidating() {
		return isValidating;
	}
	public void setValidating(boolean isValidating) {
		this.isValidating = isValidating;
	}
	public int getCapacity() {
		return capacity;
	}
	public void setCapacity(int capacity) {
		this.capacity = capacity;
	}
	
	/*
	 * private double lambda;
	private double mu1;
	private double mu2;
	private double p1;
	private double p2;
	private QueueType qType1;
	private QueueType qType2;
	private int a;
	private int b;(non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	
	public String toString() {
		return (lambda + " " + mu1 + " " +mu2+ " "+String.format("%.2f", p1).replace(",", ".")+ " "+String.format("%.2f", p2).replace(",", ".")+ " "+qType1+ " "+qType2+ " "+a+ " "+b).replace(".", "_");
	}
}
